package com.loong.loong.hik.api.entity.door;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 人员对象特征属性
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_door_people")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="PersonInfo对象", description="人员信息表")
public class HikDoorPeople {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "人员编号")
	@TableId(value = "index_code", type = IdType.ASSIGN_ID)
	@NotBlank(message = "人员编号不能为空")
	private String indexCode;

	@ApiModelProperty(value = "外部编码（联网编码）")
	@TableField("external_index_code")
	@NotBlank(message = "外部编码不能为空")
	private String externalIndexCode;

	@ApiModelProperty(value = "名称")
	@NotBlank(message = "名称不能为空")
	private String cn;

	@ApiModelProperty(value = "父级资源编号（部门联网编码）")
	@TableField("parent_index_code")
	@NotBlank(message = "父级资源编号不能为空")
	private String parentIndexCode;

	@ApiModelProperty(value = "所属部门名称")
	@TableField("dept_name")
	@NotBlank(message = "所属部门名称不能为空")
	private String deptName;

	@ApiModelProperty(value = "性别，编码应符合GB/T 2261.1")
	@NotBlank(message = "性别不能为空")
	private Integer sex;

	@ApiModelProperty(value = "曾用名")
	private String otherName;

	@ApiModelProperty(value = "访客人员照片（证件照）地址")
	@TableField("photo_url")
	private String photoUrl;

	@ApiModelProperty(value = "年龄")
	private Integer ag;

	@ApiModelProperty(value = "职业")
	private String job;

	@ApiModelProperty(value = "职工性质")
	@TableField("staff_property")
	private String staffProperty;

	@ApiModelProperty(value = "工作单位")
	private String company;

	@ApiModelProperty(value = "职工号")
	@TableField("job_no")
	private String jobNo;

	@ApiModelProperty(value = "职位")
	@TableField("employee_post")
	private String employeePost;

	@ApiModelProperty(value = "员工编号")
	@TableField("employee_number")
	private String employeeNumber;

	@ApiModelProperty(value = "岗位类别")
	@TableField("post_type")
	private String postType;

	@ApiModelProperty(value = "配偶姓名")
	@TableField("spouse_name")
	private String spouseName;

	@ApiModelProperty(value = "健康状况")
	private Integer health;

	@ApiModelProperty(value = "家庭住址")
	private String address;

	@ApiModelProperty(value = "邮箱")
	private String email;

	@ApiModelProperty(value = "电话")
	private String phone;

	@ApiModelProperty(value = "证件类型")
	@TableField("identity_type")
	private String identityType;

	@ApiModelProperty(value = "证件号码")
	@TableField("id_no")
	private String iDNo;

	@ApiModelProperty(value = "证件有效期起止，格式：yyyyMMdd-yyyyMMdd")
	@TableField("id_effective_time")
	private String iDEffectiveTime;

	@ApiModelProperty(value = "国籍")
	private String nationality;

	@ApiModelProperty(value = "民族")
	private String nation;

	@ApiModelProperty(value = "籍贯")
	private String birthplace;

	@ApiModelProperty(value = "户籍")
	@TableField("census_register")
	private String censusRegister;

	@ApiModelProperty(value = "婚姻状况，编码应符合GB/T 2261.2")
	private Integer marriaged;

	@ApiModelProperty(value = "政治面貌")
	@TableField("political_status")
	private String politicalStatus;

	@ApiModelProperty(value = "入党时间")
	@TableField("party_time")
	private String partyTime;

	@ApiModelProperty(value = "学历")
	@TableField("education_background")
	private String educationBackground;

	@ApiModelProperty(value = "现居住地")
	@TableField("curr_residence")
	private String currResidence;

	@ApiModelProperty(value = "房间号")
	@TableField("room_num")
	private String roomNum;

	@ApiModelProperty(value = "与户主关系")
	@TableField("house_holder_rel")
	private String houseHolderRel;

	@ApiModelProperty(value = "学号")
	@TableField("student_id")
	private String studentId;

	@ApiModelProperty(value = "学生入学时间，格式为yyyy-MM-dd")
	@TableField("stu_start_time")
	private String stuStartTime;

	@ApiModelProperty(value = "学生毕业时间，格式为yyyy-MM-dd")
	@TableField("stu_end_time")
	private String stuEndTime;

	@ApiModelProperty(value = "年级")
	@TableField("stu_grade")
	private String stuGrade;

	@ApiModelProperty(value = "班级")
	@TableField("stu_class")
	private String stuClass;

	@ApiModelProperty(value = "学院")
	private String academy;

	@ApiModelProperty(value = "学生专业")
	private String profession;

	@ApiModelProperty(value = "宿舍楼")
	private String dormitory;

	@ApiModelProperty(value = "是否住校")
	private Integer lodge;

	@ApiModelProperty(value = "人员描述")
	@TableField("person_desc")
	private String personDesc;

	@ApiModelProperty(value = "同步标志")
	@TableField("sync_flag")
	private Integer syncFlag;

	@ApiModelProperty(value = "拼音")
	private String pinyin;

	@ApiModelProperty(value = "发证机构")
	@TableField("cert_issuer")
	private String certIssuer;

	@ApiModelProperty(value = "发证地址")
	@TableField("cert_addr")
	private String certAddr;

	@ApiModelProperty(value = "证件有效期，格式为yyyy-MM-dd")
	@TableField("cert_expire_time")
	private String certExpireTime;

	@ApiModelProperty(value = "创建时间")
	@TableField("create_time")
	private LocalDateTime createTime;

	@ApiModelProperty(value = "更新时间")
	@TableField("update_time")
	private LocalDateTime updateTime;

	@ApiModelProperty(value = "扩展信息")
	@TableField("extend_data")
	private String extendData;

	@ApiModelProperty(value = "数据状态")
	private Integer status;

}
